Skip to content

Conversation

SciLor
Copy link

@SciLor SciLor commented Aug 12, 2020

No description provided.

jaenek and others added 30 commits July 28, 2020 17:18
ESP32 doesn't have the redirect following capability, don't try and turn it on.
Valgrind detects an error in TSF.h, not yet fixed.  This could be
causing issues on the ESP32.
Valgrind identified cases where the chunk read position came out to be
-1, which was causing a read of memory before the actual cache buffers.
This could result in add'l noise on playback.
Re-enable ESP32 builds in CI

Fix examples which do not compile on ESP32
Thanks to Marc Madaule for the patch adding FatFS for the ESP32 as a
file source.
Velocity in the MIDI format goes from 1...127, so scale the volume of
the note generator by /128 instead of /256.   Increases volume of all
notes by 2x linearly (3dB).

Found by Marc Madaule
Patch 21c07c0bcd702e7adf3db349ac926914b98d17ce was applied to the TSF's
original code, but not to the fixed-point generator used by the ESP8266.
Apply it to the FP unit as well.

Spotted by Marc Madaule
Add ported versions of the Opus codec, OpusFile parser, and OGG demuxer
from Xiph.org.

Only works on the ESP32 due to memory limitations (of opusfile,
strangely enough, and not because of opus compression).

Adds a basic example and a host test.

Fixes #278
As noted by Marc Madaule (thanks!), the mono AAC decode was not
functioning properly.  Adjust the output stuff loop to fix.
Bugfixes to AAC and Opus codec addition
* test/run on host to null device

* compilation fix
* separate malloc structures

* add desync() for user when randomly seeking in the input file
fix corner cases leading to exceptions when seeking

* additional test when trying to crash-shake everything
with a rotary encoder seeking into the currently played file

* use private instead of static

* remove temporary debug code
PlatformIO requires these dependencies to be explicitly mentioned. Please check the version numbers of the libraries specified are correct. However, v1.0 for each allows for successful builds. Thanks!
When reusing the AudioGeneratorMP3 object to play multiple files with errors, the error count was never reset.
Also, if 3 errors are encountered, it would stop running but never clean up the buffers.
Code courtesy of Martin Laclaustra.

Uses the ULP coprocessor on the ESP32 to send samples to the onboard
DACs, freeing the I2S port for other uses.

Connect left output to pin 25, right to pin 26.
earlephilhower and others added 30 commits October 8, 2025 08:25
… range check (#769)

Very minor fix for damaged SoundFont files.

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
On the ESP32 it seems the i2s clock set will cause a hiccup, even
if it's setting the exact same clock as before.

Avoid it by only setting the I2S clock if it differs from the last set.
Initialize it to 0hz to ensure the first setRate call always works.

Supercedes #656
* Tell the mixer at which rate to consume the next sample
* Update SetRate method to include id parameter
* Refactor SetRate to minimize redundant updates
Optimize rate setting to avoid unnecessary calls.
* Add newHz and lastHz variables to AudioOutputMixer
---------
Co-authored-by: Earle F. Philhower, III <[email protected]>
Fixes #629

Need to set the I2S clock after begin() for ESP32
Fixes #399

rtc_clk_cal can return 0 while calibration is underway.  If that happens
busy-wait until it returns a valid period.
* Fix ULP on ESP32

CONFIG_IDF_TARGET_ESP32 is not yet defined before #include "AudioOutputULP.h"

* AudioOutputULP: Fix DAC2 stereo in case of DAC1+DAC2

* ULP - no ESP32S2 / S3

On ESP32S2 it compiles, but no audio is coming out
On ESP32S3 DAC is not supported

* Astyle

---------

Co-authored-by: Earle F. Philhower, III <[email protected]>
Move to Opus 1.5.1
Remove OpusFile and OGG libraries because we parse the OGG file in
the object directly with way less memory and overhead.

Update example for LittleFS and RP2040

Fixes #372
Only the WAV and FLAC generators can generate 8-bit values, so it is
more efficient and sane to just have those generators upscale to 16-bit
signed (if necessary) in generation and simplify all the other
Generators and Outputs.
Move to the new I2S driver for the ESP chips, since the next revisioncl
of the IDF will remove them completely.

Make the I2S constructors saner and add consistent SetPinout() and
SetBuffers calls to allow configuration.

Remove need for separate UseMCLK or SwapClocks calls, we can figure
that out from the pins selected.

Fixes #758
Borrowed from BackgroundAudio PDM implementation
https://github.com/earlephilhower/BackgroundAudio

Requires an ESP32 model with PDM support.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.